package jt.classic.system.objectquery;

import jt.classic.system.workflow.WObject;

import org.limp.basework.SimpleBean;

import java.util.List;
import java.util.Map;


/**
 * 对象实例数据查询设置
 *
 * @author mido
 *
 */
public interface ObjectQuery extends SimpleBean {
    public final static String INSERT = "insert";
    public final static String VIEW = "view";
    public final static String UPDATE = "update";
    public final static String DELETE = "delete";
    public final static String PURVIEW = "purview";
    public final static String EXPORT = "export";
    public final static String COPY = "copy";

    /**
     * 查询ID
     * @return String
     */
    public String id();

    /**
     * 查询名称
     * @return String
     */
    public String iname();

    /**
     * 查询描述
     * @return String
     */
    public String idesc();
    
    /**
     * 自定义js脚本文件链接
     * @return String
     */
    public String iJsUrl();
    
    /**
     * 自定义css样式文件链接
     * @return String
     */
    public String iCssUrl();

    /**
     * 是否会话校验(0:无效,1:有效)
     * @return int
     */
    public int isession();
    
    /**
     * 是否显示复选框
     * @return boolean
     */
    public boolean ishowchk();

    /**
     * 对象创建开始日期
     * @return String
     */
    public String icreatestime();

    /**
     * 对象创建结束日期
     * @return String
     */
    public String icreateetime();

    /**
     * 数据操作权限(0有效,1无效)
     * @param tp 操作类型
     * @return boolean
     */
    public boolean ihandle(String tp);

    /**
     * 权限设置
     * @return String
     */
    public String ipurview();

    /**
     * 权限设置名称
     * @return String
     */
    public String ipurviewname();
    
    /**
     * 权限设置完整字符串
     * @return
     */
    public String ipurviewstring();

    /**
     * 查询页面链接
     * @return String
     */
    public String iqueryurl();

    /**
     * 查询结果页面链接
     * @return String
     */
    public String iresulturl();

    /**
     * 相关对象
     * @return WObject
     */
    public WObject iobject();

    /**
     * 查询项定义
     * @return List
     */
    public List iqueryitems();

    /**
     * 查询项散列表
     * @return Map
     */
    public Map iqueryitemMap();

    /**
     * 显示项定义
     * @return List
     */
    public List iviewitems();

    /**
     * 显示项散列表
     * @return
     */
    public Map iviewitemMap();

    /**
     * 约束项定义
     * @return List
     */
    public List irestraintitems();

    /**
     * 约束项散列表
     * @return Map
     */
    public Map irestraintitemMap();

    /**
     * 查询项定义(关联表)
     * @param tableName 关联表
     * @return List
     */
    public List iqueryitems(String tableName);

    /**
     * 显示项定义(关联表)
     * @param tableName 关联表
     * @return List
     */
    public List iviewitems(String tableName);

    /**
     * 前置约束项定义(关联表)
     * @param tableName 关联表
     * @return
     */
    public List irestraintitems(String tableName);

    /**
     * 查询项
     * @param name 查询项名称
     * @return WObjectQueryItem
     */
    public ObjectQueryItem queryitem(String name);

    /**
     * 没有定义查询\显示\前置定义的查询设置
     * @return boolean
     */
    public boolean isInsignificant();
    
    /**
     * 默认显示列表数据
     * @return boolean
     */
    public boolean idefaultlist();
    
    /**
     * 数据导出类型
     * @return String
     */
    public String iexport();
}
